home *** CD-ROM | disk | FTP | other *** search
/ Aminet 35 / Aminet 35 (2000)(Schatztruhe)[!][Feb 2000].iso / Aminet / dev / e / cha_source.lha / cha_source / test_polynomial.e < prev    next >
Encoding:
Text File  |  1999-12-18  |  1.7 KB  |  51 lines

  1. /*==========================================================================+
  2. | test_polynomial.e                                                         |
  3. | test complex polynomials                                                  |
  4. | test passed                                                               |
  5. +--------------------------------------------------------------------------*/
  6.  
  7. MODULE '*complex', '*polynomial'
  8.  
  9. /*-------------------------------------------------------------------------*/
  10.  
  11. PROC main() HANDLE
  12.     DEF poly = NIL : PTR TO polynomial
  13.     NEW poly.polynomial()
  14.     printpolynomial(poly)
  15.     poly.addzero([  1.0, 0.0 ] : complex)
  16.     printpolynomial(poly)
  17.     poly.addzero([ -1.0, 0.0 ] : complex)
  18.     printpolynomial(poly)
  19.     poly.addzero([  2.0, 0.0 ] : complex)
  20.     printpolynomial(poly)
  21.     poly.addzero([ -2.0, 0.0 ] : complex)
  22.     printpolynomial(poly)
  23.     poly.expand(4, [ 1.0, 0.0,
  24.                     -1.0, 0.0,
  25.                      2.0, 0.0,
  26.                     -2.0, 0.0 ] : complex)
  27.     printpolynomial(poly)
  28. EXCEPT DO
  29.     -> cleanup
  30.     END poly
  31.     -> report errors
  32. ENDPROC IF exception THEN 5 ELSE 0
  33.  
  34. PROC printpolynomial(poly : PTR TO polynomial)
  35.     DEF i, z : complex
  36.     FOR i := poly.power TO 1 STEP -1
  37.         WriteF('(\d+\di) z^\d + ', ! poly.c[i].re !, ! poly.c[i].im !, i)
  38.     ENDFOR
  39.     WriteF('(\d+\di)\n', ! poly.c[0].re !, ! poly.c[0].im !)
  40.     FOR i := -2 TO 2
  41.         z.re := i !
  42.         z.im := 0.0
  43.         poly.evaluate(z, z)
  44.         WriteF('p(\d) = \d+\di\n', i, ! z.re !, ! z.im !)
  45.     ENDFOR
  46. ENDPROC
  47.  
  48. /*--------------------------------------------------------------------------+
  49. | END: test_polynomial.e                                                    |
  50. +==========================================================================*/
  51.